const formatTime = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()

  return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`
}

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : `0${n}`
}

function removeChinese(text) {
  if (!text) return '';
  // 移除所有中文字符
  return text.replace(/[\u4e00-\u9fa5]/g, '').trim();
}

function stripMarkdown(markdownText, emptyContent = false) {
  if (!markdownText) return '';
  // 移除Markdown格式
  return markdownText
    .replace(/\*\*(.*?)\*\*/g, emptyContent ?'$1' : '') // 移除粗体
    .replace(/\*(.*?)\*/g, emptyContent ?'$1' : '')     // 移除斜体
    .replace(/#+ (.*?)\n/g, emptyContent ?'$1\n' : '')  // 移除标题
    .replace(/\[(.*?)\]\(.*?\)/g, emptyContent ?'$1' : '') // 移除链接
    .replace(/`(.*?)`/g, emptyContent ?'$1' : '')        // 移除代码块
    .replace(/> (.*?)\n/g, emptyContent ?'$1\n' : '')   // 移除引用
    .replace(/[\*\-\+] (.*?)\n/g, emptyContent ?'$1\n' : '') // 移除列表
    .replace(/\d+\. (.*?)\n/g, emptyContent ?'$1\n' : '')    // 移除有序列表
    .replace(/\n{2,}/g, emptyContent ?'\n\n' : '')     // 合并空行
    .trim();
}

module.exports = {
  formatTime,
  stripMarkdown,
  removeChinese
}
